/**
 * Affichage de la légende pour la carte de gauche.
 */
function dessinerLegendeCartoRegion(nivGeog, idGeog, calculPalettes) {
	
	var source =		$('#sourceId').get(0).value;
	var periode =		$('#periodId').get(0).value;
	var unite =			$('#unitId').get(0).value;
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	var nbDigits = 1;
	if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
			|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur1 == 'VOL' || indicateur1 == 'D_VOL') ) {
		nbDigits = 0;
	}
	
	$.ajax({
 		traditional: true, 
 		type: 'POST', 
 		url: './bornesCarte1.do',
 		target: "_blank", 
 		data : {
 			source: 		source,
 			unite:			unite,
 			periode:		periode,
 			idGeog:			idGeog,
 			nivGeog:		nivGeog,
 			indicateur:		indicateur,
 			indicateur1:	indicateur1,
 			indicateur2:	indicateur2,
 			calculPalettes: calculPalettes
 		},
 		error: function () {
 			alert('Erreur au chargement de la legende 1');
 		},
 		success: function(result) { 
 			$('#legende1').css("display", "block");
 			// Informations 
 			if (result.legendeRegion.typeClassement == 'PE' || result.legendeRegion.typeClassement == 'DU') {
 				if ($('#analyseCartoHieId').get(0).checked) {
 					$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 				} else {
 					$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
 				}
 				$('#legendeAIdRegion').html("&agrave;");
 			} else {
 				if ($('#analyseCartoHieId').get(0).checked) {
 					$('#legendeDeIdRegion').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 				} else {
 					$('#legendeDeIdRegion').html($('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
 				}
 				$('#legendeAIdRegion').html("");
 			}
 			// Variables globales 
 			maxCartoLegendeRegion = result.maxLegende;
 			minCartoLegendeRegion = result.minLegende;
 			var i = 1;
 			var minDisplay = 0;
 			var maxDisplay = 0;
 			var pas = (result.maxLegende - result.minLegende) / result.legendeRegion.nbTranches;
 			var tempPas = result.minLegende;
 			for (pal in result.legendeRegion.palettes) {
 				if (result.legendeRegion.typeClassement == 'PE') {
 					minDisplay = tempPas.toFixed(nbDigits);
 					maxDisplay = (tempPas + pas).toFixed(nbDigits);
 	 			} else if (result.legendeRegion.typeClassement == 'DU') {
 	 				minDisplay = result.legendeRegion.palettes[pal].min.toFixed(nbDigits);
 					maxDisplay = result.legendeRegion.palettes[pal].max.toFixed(nbDigits);
 	 			} 
	 			$('#legendePaletteRegion' + i).spectrum({
	 			    color: result.legendeRegion.palettes[pal].color,
	 			    disabled: true
	 			});
	 			if (result.legendeRegion.typeClassement == 'PE' || result.legendeRegion.typeClassement == 'DU') {
	 				$('#legendePaletteMinRegion' + i + 'Div').html(minDisplay);
	 				$('#legendePaletteMaxRegion' + i + 'Div').html(maxDisplay);
	 			} else {
	 				$('#legendePaletteMinRegion' + i + 'Div').html("Tranche " + i);
	 				$('#legendePaletteMaxRegion' + i + 'Div').html("");
	 			}
	 			tempPas += pas; 
	 			i++;
 			}
 			
 		}
	});
	
}

/**
 * Affichage de la légende pour la carte de droite.
 */
function dessinerLegendeCartoSecteur(nivGeog, idGeog, calculPalettes) {
	
	var source =	$('#sourceId').get(0).value;
	var periode =	$('#periodId').get(0).value;
	var unite =		$('#unitId').get(0).value;
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	var nbDigits = 1;
	if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
			|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur2 == 'VOL' || indicateur2 == 'D_VOL') ) {
		nbDigits = 0;
	}
	
	$.ajax({
 		traditional: true, 
 		type: 'POST', 
 		url: './bornesCarte2.do',
 		target: "_blank", 
 		data : {
 			source: 		source,
 			unite:			unite,
 			periode:		periode,
 			idGeog:			idGeog,
 			nivGeog:		nivGeog,
 			indicateur:		indicateur,
 			indicateur1:	indicateur1,
 			indicateur2:	indicateur2,
 			calculPalettes: calculPalettes
 		},
 		error: function () {},
 		success: function(result) { 
 			// Informations 
 			if (result.legendeSecteur.typeClassement == 'PE' || result.legendeSecteur.typeClassement == 'DU') {
 				if ($('#analyseCartoHieId').get(0).checked) {
 					$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 				} else {
 					$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
 				}
 				$('#legendeAIdSecteur').html("&agrave;");
 			} else {
 				if ($('#analyseCartoHieId').get(0).checked) {
 					$('#legendeDeIdSecteur').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 				} else {
 					$('#legendeDeIdSecteur').html($('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
 				}
 				$('#legendeAIdSecteur').html("");
 			}
 			// Variables globales 
 			maxCartoLegendeSecteur = result.maxLegende;
 			minCartoLegendeSecteur = result.minLegende;
 			var i = 1;
 			var minDisplay = 0;
 			var maxDisplay = 0;
 			var pas = (result.maxLegende - result.minLegende) / result.legendeSecteur.nbTranches;
 			var tempPas = result.minLegende;
 			for (pal in result.legendeSecteur.palettes) {
 				if (result.legendeSecteur.typeClassement == 'PE') {
 					minDisplay = tempPas.toFixed(nbDigits);
 					maxDisplay = (tempPas + pas).toFixed(nbDigits);
 	 			} else if (result.legendeSecteur.typeClassement == 'DU') {
 	 				minDisplay = result.legendeSecteur.palettes[pal].min.toFixed(nbDigits);
 					maxDisplay = result.legendeSecteur.palettes[pal].max.toFixed(nbDigits);
 	 			} 
	 			$('#legendePaletteSecteur' + i).spectrum({
	 			    color: result.legendeSecteur.palettes[pal].color,
	 			    disabled: true
	 			});
	 			if (result.legendeSecteur.typeClassement == 'PE' || result.legendeSecteur.typeClassement == 'DU') {
	 				$('#legendePaletteMinSecteur' + i + 'Div').html(minDisplay);
	 				$('#legendePaletteMaxSecteur' + i + 'Div').html(maxDisplay);
	 			} else {
	 				$('#legendePaletteMinSecteur' + i + 'Div').html("Tranche " + i);
	 				$('#legendePaletteMaxSecteur' + i + 'Div').html("");
	 			}
	 			tempPas += pas;
	 			i++;
 			}
 		}
	});
	
}

/**
 * Chargement de la configuration d'une légende à la région ou au secteur.
 */
function loadConfigurationLegende() {
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	$.ajax({
 		traditional: true, 
 		type: 'POST', 
 		url: './dataLegende.do',
 		target: "_blank", 
 		data : {},
 		error: function () {},
 		success: function(result) { 
 			for (var k = 1; k <= 7; k++) {
 				$('#legendePaletteMax' + k + 'Div').html("");
 				$('#legendePaletteMin' + k + 'Div').html("");
 				$('#legendePalette' + k).next().css("display", "none");
 			}
 			$('#classementPE').prop('checked', false);
 			$('#classementPE').attr('checked', false);
 			$('#classementDU').prop('checked', false);
 			$('#classementDU').attr('checked', false);
 			$('#classementNE').prop('checked', false);
 			$('#classementNE').attr('checked', false);
 			$('#legendeMaxAId').html("&agrave;");
 			if ($('#analyseCartoHieId').get(0).checked) {
 				$('#legendeMinDeId').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 			} else {
	 			if (legendeCartoRegion) {
	 				$('#legendeMinDeId').html("de " + $('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
	 			} else {
	 				$('#legendeMinDeId').html("de " + $('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
	 			}
 			}
 			// Legende : region ou secteur 
 			var legende;
 			var maxCartoLegende = 0;
 			var minCartoLegende = 0;
 			if (legendeCartoRegion) {
 				legende = result.legendeRegion;
 				maxCartoLegende = maxCartoLegendeRegion;
 				minCartoLegende = minCartoLegendeRegion;
 			} else {
 				legende = result.legendeSecteur;
 				maxCartoLegende = maxCartoLegendeSecteur;
 				minCartoLegende = minCartoLegendeSecteur;
 			}
 			// Nombre de chiffres après la virgule
 			var nbDigits = 1;
 			if (legendeCartoRegion) {
 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur1 == 'VOL' || indicateur1 == 'D_VOL') ) {
 	 				nbDigits = 0;
 	 			}
 			} else {
 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur2 == 'VOL' || indicateur2 == 'D_VOL') ) {
 	 				nbDigits = 0;
 	 			}
 			}
 			// Type de classement
 			if (legende.typeClassement == 'PE') {
 				$('#classementPE').prop('checked', true);
 				$('#classementPE').attr('checked', true);
 			} else if (legende.typeClassement == 'DU') {
 				$('#classementDU').prop('checked', true);
 				$('#classementDU').attr('checked', true);
 			} else {
 				$('#classementNE').prop('checked', true);
 				$('#classementNE').attr('checked', true);
 				$('#legendeMaxAId').html("");
 				if ($('#analyseCartoHieId').get(0).checked) {
 					$('#legendeMinDeId').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
 				} else {
	 				if (legendeCartoRegion) {
	 					$('#legendeMinDeId').html($('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
	 				} else {
	 					$('#legendeMinDeId').html($('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
	 				}
 				}
 			}
 			// Nombre de couleurs 
 			$('#carto-nbCouleurs-id').val(legende.nbCouleurs);
 			$('#legendeCouleurBase1').spectrum({
 			    color: legende.couleurBase1
 			});
 			$('#legendeCouleurBase2').spectrum({
 			    color: legende.couleurBase2
 			});
 			$('#legendeCouleurBase3').spectrum({
 			    color: legende.couleurBase3
 			});
 			if (legende.nbCouleurs == 2) {
 				$('#legendeCouleurBase3').next().css("display", "none");
 			}
 			// Nombre de tranches 
 			$('#carto-nbTranches-id').val(legende.nbTranches);
 			// Palette de couleurs 
 			var i = 1;
 			var pas = (maxCartoLegende - minCartoLegende) / legende.nbTranches;
 			var tempPas = minCartoLegende;
 			var minDisplay = 0;
 			var maxDisplay = tempPas;
 			for (pal in legende.palettes) {
	 			$('#legendePalette' + i).spectrum({
	 			    color: legende.palettes[pal].color 
	 			});
	 			if (legende.typeClassement == 'PE') {
	 				minDisplay = tempPas.toFixed(nbDigits);
 					maxDisplay = (tempPas + pas).toFixed(nbDigits);
	 				$('#legendePaletteMin' + i + 'Div').html(minDisplay);
	 				$('#legendePaletteMax' + i + 'Div').html(maxDisplay);
	 			} else if (legende.typeClassement == 'DU') {
	 				minDisplay = legende.palettes[pal].min.toFixed(nbDigits);
 					maxDisplay = legende.palettes[pal].max.toFixed(nbDigits);
	 				if (i == 1) {
	 					$('#legendePaletteMin' + i + 'Div').html(minDisplay);
	 				} else {
	 					$('#legendePaletteMin' + i + 'Div').html('<input type="text" onchange="changementBorne(' + i + ',' + false + ');" id="legendePaletteMin' + i + '" style="width:50px;" value="' + minDisplay + '"/>');
	 				}
	 				if (i == legende.nbTranches) {
	 					$('#legendePaletteMax' + i + 'Div').html(maxDisplay);
	 				} else {
	 					$('#legendePaletteMax' + i + 'Div').html('<input type="text" onchange="changementBorne(' + i + ',' + true + ');" id="legendePaletteMax' + i + '" style="width:50px;" value="' + maxDisplay + '"/>');
	 				}
	 			} else {
	 				$('#legendePaletteMin' + i + 'Div').html("Tranche " + i);
	 				$('#legendePaletteMax' + i + 'Div').html("");
	 			}
	 			i++;
	 			tempPas += pas;
 			}
 		}
 	}); 
	
}

/**
 * Sauvegarde la configuration pour les deux légendes.
 */
function saveTwoConfigurationLegendes() {
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	// Type de classement 
	var typeClassement = "";
	if ($('#classementPE').get(0).checked) {
		typeClassement = "PE";
	} else if ($('#classementDU').get(0).checked) {
		typeClassement = "DU";
	} else {
		typeClassement = "NE";
	}
	
	// Nombre de couleurs 
	var nbCouleurs = $('#carto-nbCouleurs-id').get(0).value;
	
	// Couleurs de base
	var couleurBase1 = $('#legendeCouleurBase1').spectrum("get").toHexString();
	var couleurBase2 = $('#legendeCouleurBase2').spectrum("get").toHexString();
	var couleurBase3 = $('#legendeCouleurBase3').spectrum("get").toHexString();
	
	// Nombre de tranches 
	var nbTranches = $('#carto-nbTranches-id').get(0).value;
	
	// Palette de couleurs 
	var colors = "";
	var palettesMin = "";
	var palettesMax = "";
	for (var j = 1; j <= 7; j++) {
		
		if (j <= nbTranches) { // Tranches affichées
			
			colors += $('#legendePalette' + j).spectrum("get").toHexString() + ";";
			
			if ($('#classementPE').get(0).checked) {
				palettesMin += $('#legendePaletteMin' + j + 'Div').html() + ";";
				palettesMax += $('#legendePaletteMax' + j + 'Div').html() + ";";
			} else if ($('#classementDU').get(0).checked) {
				if (j == 1) {
					palettesMin += $('#legendePaletteMin' + j + 'Div').html() + ";";
					palettesMax += $('#legendePaletteMax' + j).val() + ";";
				} else if (j == nbTranches) {
					palettesMin += $('#legendePaletteMin' + j).val() + ";";
					palettesMax += $('#legendePaletteMax' + j + 'Div').html() + ";";
				} else {
					palettesMin += $('#legendePaletteMin' + j).val() + ";";
					palettesMax += $('#legendePaletteMax' + j).val() + ";";
				}
			} 
			
 			$('#legendePaletteRegion' + j).spectrum({
 			    color: $('#legendePalette' + j).spectrum("get").toHexString(),
 			    disabled: true
 			});
 			
 			$('#legendePaletteSecteur' + j).spectrum({
 			    color: $('#legendePalette' + j).spectrum("get").toHexString(),
 			    disabled: true
 			});
 			
 			// Nombre de chiffres après la virgule
 			var nbDigits = 1;
 			if (legendeCartoRegion) {
 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur1 == 'VOL' || indicateur1 == 'D_VOL') ) {
 	 				nbDigits = 0;
 	 			}
 			} else {
 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur2 == 'VOL' || indicateur2 == 'D_VOL') ) {
 	 				nbDigits = 0;
 	 			}
 			}
			
			var legendePaletteMinJDivHtml = parseFloat($('#legendePaletteMin' + j + 'Div').html()).toFixed(nbDigits);
			var legendePaletteMaxJDivHtml = parseFloat($('#legendePaletteMax' + j + 'Div').html()).toFixed(nbDigits);
 			
 			if ($('#classementPE').get(0).checked) {
 				$('#legendePaletteMinRegion' + j + 'Div').html(legendePaletteMinJDivHtml);
				$('#legendePaletteMaxRegion' + j + 'Div').html(legendePaletteMaxJDivHtml);
				$('#legendePaletteMinSecteur' + j + 'Div').html(legendePaletteMinJDivHtml);
				$('#legendePaletteMaxSecteur' + j + 'Div').html(legendePaletteMaxJDivHtml);
 			} else if ($('#classementDU').get(0).checked) {
	 			if (j == 1) {
	 				$('#legendePaletteMinRegion' + j + 'Div').html(legendePaletteMinJDivHtml);
					$('#legendePaletteMaxRegion' + j + 'Div').html($('#legendePaletteMax' + j).val());
					$('#legendePaletteMinSecteur' + j + 'Div').html(legendePaletteMinJDivHtml);
					$('#legendePaletteMaxSecteur' + j + 'Div').html($('#legendePaletteMax' + j).val());
	 			} else if (j == nbTranches) {
	 				$('#legendePaletteMinRegion' + j + 'Div').html($('#legendePaletteMin' + j).val());
					$('#legendePaletteMaxRegion' + j + 'Div').html(legendePaletteMaxJDivHtml);
					$('#legendePaletteMinSecteur' + j + 'Div').html($('#legendePaletteMin' + j).val());
					$('#legendePaletteMaxSecteur' + j + 'Div').html(legendePaletteMaxJDivHtml);
	 			} else {
	 				$('#legendePaletteMinRegion' + j + 'Div').html($('#legendePaletteMin' + j).val());
					$('#legendePaletteMaxRegion' + j + 'Div').html($('#legendePaletteMax' + j).val());
					$('#legendePaletteMinSecteur' + j + 'Div').html($('#legendePaletteMin' + j).val());
					$('#legendePaletteMaxSecteur' + j + 'Div').html($('#legendePaletteMax' + j).val());
	 			}
 			} else {
 				$('#legendePaletteMinRegion' + j + 'Div').html("Tranche " + j);
 				$('#legendePaletteMaxRegion' + j + 'Div').html("");
 				$('#legendePaletteMinSecteur' + j + 'Div').html("Tranche " + j);
 				$('#legendePaletteMaxSecteur' + j + 'Div').html("");
 			}
	 			
		} else { // Tranches non affichées 
			
			$('#legendePaletteRegion' + j).next().css("display", "none");
			$('#legendePaletteMinRegion' + j + 'Div').html("");
			$('#legendePaletteMaxRegion' + j + 'Div').html("");
			$('#legendePaletteSecteur' + j).next().css("display", "none");
			$('#legendePaletteMinSecteur' + j + 'Div').html("");
			$('#legendePaletteMaxSecteur' + j + 'Div').html("");
			
		}
	}
	
	// Informations 
	if ($('#analyseCartoHieId').get(0).checked) {
		if (typeClassement == 'PE' || typeClassement == 'DU') {
			$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
			$('#legendeAIdRegion').html("&agrave;");
			$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
			$('#legendeAIdSecteur').html("&agrave;");
		} else {
			$('#legendeDeIdRegion').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
			$('#legendeAIdRegion').html("");
			$('#legendeDeIdSecteur').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
			$('#legendeAIdSecteur').html("");
		}
	} else {
		if (legendeCartoRegion) {
			if (typeClassement == 'PE' || typeClassement == 'DU') {
				$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
				$('#legendeAIdRegion').html("&agrave;");
				$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
				$('#legendeAIdSecteur').html("&agrave;");
			} else {
				$('#legendeDeIdRegion').html($('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
				$('#legendeAIdRegion').html("");
				$('#legendeDeIdSecteur').html($('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
				$('#legendeAIdSecteur').html("");
			}
		} else {
			if (typeClassement == 'PE' || typeClassement == 'DU') {
				$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
				$('#legendeAIdRegion').html("&agrave;");
				$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
				$('#legendeAIdSecteur').html("&agrave;");
			} else {
				$('#legendeDeIdRegion').html($('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
				$('#legendeAIdRegion').html("");
				$('#legendeDeIdSecteur').html($('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
				$('#legendeAIdSecteur').html("");
			}
		}
	}
	
	// Requete pour sauvegarder 
	$.ajax({
 		traditional: true, 
 		type: 'POST', 
 		url: './saveLegende.do',
 		target: "_blank", 
 		data : {
 			legendeCartoRegion:	legendeCartoRegion,	
 			typeClassement:		typeClassement,
 			nbCouleurs:			nbCouleurs,
 			couleurBase1:		couleurBase1,
 			couleurBase2:		couleurBase2,
 			couleurBase3:		couleurBase3,
 			nbTranches:			nbTranches,
 			colors:				colors,
 			palettesMin:		palettesMin,
 			palettesMax: 		palettesMax,
 			all:				'true'
 		},
 		error: function() {
 			//alert('Erreur a la sauvegarde des deux legendes');
 		},
 		success: function(result) { 
 			// Redessiner les cartes
 			dessinerLegendeCartoRegion(globalNivGeog, idGeog, "false"); // TODO:"true");
			$('#regionCanvas').empty();
			$('#loaderCanvasRegion').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
			dessinerRegion(globalNivGeog, idGeog, "true");
 			$('#secteurCanvas').empty();
 			$('#loaderCanvasSecteur').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
 			dessinerSecteur(globalNivGeog, idGeog, -1, -1, true, "true");
 		}
 	}); 
	
}

/**
 * Sauvegarde de la configuration d'une légende.
 */
function saveConfigurationLegende() {
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	// Si l'indicateur est PM, DeltaPM ou EVOL_VOL alors les 2 legendes sont identiques en mode hierarchique 
	if (indicateur == 'PM' || indicateur == 'D_PM' || indicateur == 'EVOL_VOL') {
		
		saveTwoConfigurationLegendes();
		
	} else {
	
		// Type de classement 
		var typeClassement = "";
		if ($('#classementPE').get(0).checked) {
			typeClassement = "PE";
		} else if ($('#classementDU').get(0).checked) {
			typeClassement = "DU";
		} else {
			typeClassement = "NE";
		}
		
		// Nombre de couleurs 
		var nbCouleurs = $('#carto-nbCouleurs-id').get(0).value;
		
		// Couleurs de base
		var couleurBase1 = $('#legendeCouleurBase1').spectrum("get").toHexString();
		var couleurBase2 = $('#legendeCouleurBase2').spectrum("get").toHexString();
		var couleurBase3 = $('#legendeCouleurBase3').spectrum("get").toHexString();
		
		// Nombre de tranches 
		var nbTranches = $('#carto-nbTranches-id').get(0).value;
		
		// Palette de couleurs 
		var colors = "";
		var palettesMin = "";
		var palettesMax = "";
		for (var j = 1; j <= 7; j++) {
			
			if (j <= nbTranches) { // Tranches affichées
				
				colors += $('#legendePalette' + j).spectrum("get").toHexString() + ";";
				
				if ($('#classementPE').get(0).checked) {
					palettesMin += $('#legendePaletteMin' + j + 'Div').html() + ";";
					palettesMax += $('#legendePaletteMax' + j + 'Div').html() + ";";
				} else if ($('#classementDU').get(0).checked) {
					if (j == 1) {
						palettesMin += $('#legendePaletteMin' + j + 'Div').html() + ";";
						palettesMax += $('#legendePaletteMax' + j).val() + ";";
					} else if (j == nbTranches) {
						palettesMin += $('#legendePaletteMin' + j).val() + ";";
						palettesMax += $('#legendePaletteMax' + j + 'Div').html() + ";";
					} else {
						palettesMin += $('#legendePaletteMin' + j).val() + ";";
						palettesMax += $('#legendePaletteMax' + j).val() + ";";
					}
				} 
				
				// Nombre de chiffres après la virgule
	 			var nbDigits = 1;
	 			if (legendeCartoRegion) {
	 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
	 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur1 == 'VOL' || indicateur1 == 'D_VOL') ) {
	 	 				nbDigits = 0;
	 	 			}
	 			} else {
	 				if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
	 	 					|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur2 == 'VOL' || indicateur2 == 'D_VOL') ) {
	 	 				nbDigits = 0;
	 	 			}
	 			}
				
				var legendePaletteMinJDivHtml = parseFloat($('#legendePaletteMin' + j + 'Div').html()).toFixed(nbDigits);
				var legendePaletteMaxJDivHtml = parseFloat($('#legendePaletteMax' + j + 'Div').html()).toFixed(nbDigits);
				
				if (legendeCartoRegion) { // légende region (gauche) 
					
		 			$('#legendePaletteRegion' + j).spectrum({
		 			    color: $('#legendePalette' + j).spectrum("get").toHexString(),
		 			    disabled: true
		 			});
		 			if ($('#classementPE').get(0).checked) {
		 				$('#legendePaletteMinRegion' + j + 'Div').html(legendePaletteMinJDivHtml);
						$('#legendePaletteMaxRegion' + j + 'Div').html(legendePaletteMaxJDivHtml);
		 			} else if ($('#classementDU').get(0).checked) {
			 			if (j == 1) {
			 				$('#legendePaletteMinRegion' + j + 'Div').html(legendePaletteMinJDivHtml);
							$('#legendePaletteMaxRegion' + j + 'Div').html($('#legendePaletteMax' + j).val());
			 			} else if (j == nbTranches) {
			 				$('#legendePaletteMinRegion' + j + 'Div').html($('#legendePaletteMin' + j).val());
							$('#legendePaletteMaxRegion' + j + 'Div').html(legendePaletteMaxJDivHtml);
			 			} else {
			 				$('#legendePaletteMinRegion' + j + 'Div').html($('#legendePaletteMin' + j).val());
							$('#legendePaletteMaxRegion' + j + 'Div').html($('#legendePaletteMax' + j).val());
			 			}
		 			} else {
		 				$('#legendePaletteMinRegion' + j + 'Div').html("Tranche " + j);
		 				$('#legendePaletteMaxRegion' + j + 'Div').html("");
		 			}
		 			
				} else { // légende secteur (droite)
					
		 			$('#legendePaletteSecteur' + j).spectrum({
		 			    color: $('#legendePalette' + j).spectrum("get").toHexString(),
		 			    disabled: true
		 			});
		 			if ($('#classementPE').get(0).checked) {
		 				$('#legendePaletteMinSecteur' + j + 'Div').html(legendePaletteMinJDivHtml);
						$('#legendePaletteMaxSecteur' + j + 'Div').html(legendePaletteMaxJDivHtml);
		 			} else if ($('#classementDU').get(0).checked) {
			 			if (j == 1) {
			 				$('#legendePaletteMinSecteur' + j + 'Div').html(legendePaletteMinJDivHtml);
							$('#legendePaletteMaxSecteur' + j + 'Div').html($('#legendePaletteMax' + j).val());
			 			} else if (j == nbTranches) {
			 				$('#legendePaletteMinSecteur' + j + 'Div').html($('#legendePaletteMin' + j).val());
							$('#legendePaletteMaxSecteur' + j + 'Div').html(legendePaletteMaxJDivHtml);
			 			} else {
			 				$('#legendePaletteMinSecteur' + j + 'Div').html($('#legendePaletteMin' + j).val());
							$('#legendePaletteMaxSecteur' + j + 'Div').html($('#legendePaletteMax' + j).val());
			 			}
		 			} else {
		 				$('#legendePaletteMinSecteur' + j + 'Div').html("Tranche " + j);
		 				$('#legendePaletteMaxSecteur' + j + 'Div').html("");
		 			}
		 			
				}
				
			} else { // Tranches non affichées 
				
				if (legendeCartoRegion) {
					$('#legendePaletteRegion' + j).next().css("display", "none");
					$('#legendePaletteMinRegion' + j + 'Div').html("");
					$('#legendePaletteMaxRegion' + j + 'Div').html("");
				} else {
					$('#legendePaletteSecteur' + j).next().css("display", "none");
					$('#legendePaletteMinSecteur' + j + 'Div').html("");
					$('#legendePaletteMaxSecteur' + j + 'Div').html("");
				}
				
			}
		}
		
		// Informations 
		if ($('#analyseCartoHieId').get(0).checked) {
			if (typeClassement == 'PE' || typeClassement == 'DU') {
				if (legendeCartoRegion) {
					$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
					$('#legendeAIdRegion').html("&agrave;");
				} else {
					$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
					$('#legendeAIdSecteur').html("&agrave;");
				}
			} else {
				if (legendeCartoRegion) {
					$('#legendeDeIdRegion').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
					$('#legendeAIdRegion').html("");
				} else {
					$('#legendeDeIdSecteur').html($('#carto-indicateur-id').get(0).options[$('#carto-indicateur-id').get(0).selectedIndex].text);
					$('#legendeAIdSecteur').html("");
				}
			}
		} else {
			if (typeClassement == 'PE' || typeClassement == 'DU') {
				if (legendeCartoRegion) {
					$('#legendeDeIdRegion').html("de " + $('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
					$('#legendeAIdRegion').html("&agrave;");
				} else {
					$('#legendeDeIdSecteur').html("de " + $('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
					$('#legendeAIdSecteur').html("&agrave;");
				}
			} else {
				if (legendeCartoRegion) {
					$('#legendeDeIdRegion').html($('#carto-indicateur-id-1').get(0).options[$('#carto-indicateur-id-1').get(0).selectedIndex].text);
					$('#legendeAIdRegion').html("");
				} else {
					$('#legendeDeIdSecteur').html($('#carto-indicateur-id-2').get(0).options[$('#carto-indicateur-id-2').get(0).selectedIndex].text);
					$('#legendeAIdSecteur').html("");
				}
			}
		}
		
		// Requete pour sauvegarder 
		$.ajax({
	 		traditional: true, 
	 		type: 'POST', 
	 		url: './saveLegende.do',
	 		target: "_blank", 
	 		data : {
	 			legendeCartoRegion:	legendeCartoRegion,	
	 			typeClassement:		typeClassement,
	 			nbCouleurs:			nbCouleurs,
	 			couleurBase1:		couleurBase1,
	 			couleurBase2:		couleurBase2,
	 			couleurBase3:		couleurBase3,
	 			nbTranches:			nbTranches,
	 			colors:				colors,
	 			palettesMin:		palettesMin,
	 			palettesMax: 		palettesMax,
	 			all:				'false'
	 		},
	 		error: function() {
	 			//alert('Erreur a la sauvegarde de la legende');
	 		},
	 		success: function(result) { 
	 			// Redessiner les cartes
	 			if (legendeCartoRegion) { // Legende pour la région (gauche) 
	 				$('#regionCanvas').empty();
	 				$('#loaderCanvasRegion').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
	 				dessinerRegion(globalNivGeog, idGeog, "false");
	 			} else { // Legende pour le secteur (droite) 
		 			$('#secteurCanvas').empty();
		 			$('#loaderCanvasSecteur').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
		 			dessinerSecteur(globalNivGeog, idGeog, -1, -1, true, "false");
	 			}
	 		}
	 	}); 
	}
		
}

/**
 * Fonction appelée lors de la personnalisation de la légende.
 */
function changementLegende() {
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
	
	// Réinitialisation des champs 
	for (var j = 1; j <= 7; j++) {
		$('#legendePalette' + j).next().css("display", "none");
		$('#legendePaletteMin' + j).css("display", "none");
		$('#legendePaletteMax' + j).css("display", "none");
		$('#legendePaletteMin' + j + 'Div').html("");
		$('#legendePaletteMax' + j + 'Div').html("");
	}
	
	// Nombre de tranches 
	var nbTranches = $('#carto-nbTranches-id').get(0).value;
	
	// Nombre de couleurs 
	var arrayColors = new Array();
	var couleurBase1 = $('#legendeCouleurBase1').spectrum("get").toHexString();
	var couleurBase2 = $('#legendeCouleurBase2').spectrum("get").toHexString();
	var couleurBase3 = $('#legendeCouleurBase3').spectrum("get").toHexString();
	var nbCouleurs = $('#carto-nbCouleurs-id').get(0).value;
	var r1 = parseInt(couleurBase1.substring(1, 3), 16);
	var g1 = parseInt(couleurBase1.substring(3, 5), 16);
	var b1 = parseInt(couleurBase1.substring(5, 7), 16);
	var r2 = parseInt(couleurBase2.substring(1, 3), 16);
	var g2 = parseInt(couleurBase2.substring(3, 5), 16);
	var b2 = parseInt(couleurBase2.substring(5, 7), 16);
	var r3 = parseInt(couleurBase3.substring(1, 3), 16);
	var g3 = parseInt(couleurBase3.substring(3, 5), 16);
	var b3 = parseInt(couleurBase3.substring(5, 7), 16);
	if (nbCouleurs == 2) {
		arrayColors = creerDegrade(r1, g1, b1, r2, g2, b2, nbTranches - 1);
	} else if (nbCouleurs == 3) {
		var arrayColors1 = creerDegrade(r1, g1, b1, r2, g2, b2, parseInt(nbTranches / 2));
		var arrayColors2 = creerDegrade(r2, g2, b2, r3, g3, b3, parseInt(nbTranches / 2));
		var k = 0;
		for (val in arrayColors1) {
			arrayColors[k] = arrayColors1[k];
			k++;
		}
		if ((nbTranches % 2) == 0) {
			k--;
		}
		for (val in arrayColors2) {
			if (val != 0) {
				arrayColors[k] = arrayColors2[val]; 
				k++;
			}
		}
	}
	
	// Nombre de couleurs de base 
	if (nbCouleurs == 2) {
		$('#legendeCouleurBase3').next().css("display", "none");
	} else if (nbCouleurs == 3) {
		$('#legendeCouleurBase3').spectrum({ 
			color: couleurBase3
		});
	}
	
	// Palette de couleurs 
	var pas = 0;
	var tempPas = 0;
	if (legendeCartoRegion) {
		pas = (maxCartoLegendeRegion - minCartoLegendeRegion) / nbTranches;
		tempPas = minCartoLegendeRegion;
	} else {
		pas = (maxCartoLegendeSecteur - minCartoLegendeSecteur) / nbTranches;
		tempPas = minCartoLegendeSecteur;
	}
	
	// Nombre de chiffres après la virgule
	var nbDigits = 1;
	if (legendeCartoRegion) {
		if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
				|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur1 == 'VOL' || indicateur1 == 'D_VOL') ) {
			nbDigits = 0;
		}
	} else {
		if ( ($('#analyseCartoHieId').get(0).checked) && (indicateur == 'VOL' || indicateur == 'D_VOL') 
				|| ($('#analyseCartoIsoId').get(0).checked) && (indicateur2 == 'VOL' || indicateur2 == 'D_VOL') ) {
			nbDigits = 0;
		}
	}
	
	var minDisplay = 0;
	var maxDisplay = tempPas;
	for (var i = 1; i <= nbTranches; i++) {
		minDisplay = tempPas.toFixed(nbDigits);
		maxDisplay = (tempPas + pas).toFixed(nbDigits);
		$('#legendePalette' + i).spectrum({
		    color: arrayColors[i - 1] 
		});
		$('#legendeMaxAId').html("&agrave;");
		$('#legendeMinDeId').html("de");
		if ($('#classementPE').get(0).checked) {
			$('#legendePaletteMin' + i + 'Div').html(minDisplay);
			$('#legendePaletteMax' + i + 'Div').html(maxDisplay);
		} else if ($('#classementDU').get(0).checked) {
			if (i == 1) {
				$('#legendePaletteMin' + i + 'Div').html(minDisplay);
			} else {
				$('#legendePaletteMin' + i + 'Div').html('<input type="text" onchange="changementBorne(' + i + ',' + false + ');" id="legendePaletteMin' + i + '" style="width:50px;" value="' + minDisplay + '"/>');
			}
			if (i == nbTranches) {
				$('#legendePaletteMax' + i + 'Div').html(maxDisplay);
			} else {
				$('#legendePaletteMax' + i + 'Div').html('<input type="text" onchange="changementBorne(' + i + ',' + true + ');" id="legendePaletteMax' + i + '" style="width:50px;" value="' + maxDisplay + '"/>');
			}
		} else {
			$('#legendePaletteMin' + i + 'Div').html("Tranche " + i);
			$('#legendePaletteMax' + i + 'Div').html("");
			$('#legendeMaxAId').html("");
			$('#legendeMinDeId').html("");
		}
		tempPas += pas;
	}
}

/**
 * Verification de la validite des données pour la personnalisation de la légende.
 */
function checkConfigurationLegende() {
	if ($('#classementDU').get(0).checked) {
		// Nombre de tranches 
		var nbTranches = $('#carto-nbTranches-id').get(0).value;
		for (var i = 1; i <= nbTranches; i++) {
			if (i != 1) {
				if ( isNaN($('#legendePaletteMin' + i).val()) ) {
					alert($('#legendePaletteMin' + i).val() + " n\x27est pas un nombre");
					return false;
				}
			} 
			if (i != nbTranches) {
				if ( isNaN($('#legendePaletteMax' + i).val()) ) {
					alert($('#legendePaletteMax' + i).val() + " n\x27est pas un nombre");
					return false;
				}
			} 
		}
		// Verification des bornes
		var valMin = 0;
		if (legendeCartoRegion) {
			valMin = minCartoLegendeRegion;
		} else {
			valMin = minCartoLegendeSecteur;
		}
		for (var i = 1; i <= nbTranches; i++) {
			if (i == 1) {
				if (valMin > parseFloat($('#legendePaletteMax' + i).val())) {
					alert("Probl\xE8me de bornes");
					return false;
				} else {
					valMin = parseFloat($('#legendePaletteMax' + i).val());
				}
			} else if (i == nbTranches) {
				if (valMin > parseFloat($('#legendePaletteMin' + i).val()) || parseFloat($('#legendePaletteMin' + i).val()) > parseFloat($('#legendePaletteMax' + i + 'Div').val())) {
					alert("Probl\xE8me de bornes");
					return false;
				}
			} else {
				if (valMin > parseFloat($('#legendePaletteMin' + i).val()) || parseFloat($('#legendePaletteMin' + i).val()) > parseFloat($('#legendePaletteMax' + i).val())) {
					alert("Probl\xE8me de bornes");
					return false;
				} else {
					valMin = parseFloat($('#legendePaletteMax' + i).val());
				}
			}
		}
	}
	return true;
}

/**
 * Changement d'une borne manuelle pour une tranche.
 * 
 * @param numTranche
 * 		le numéro de la tranche modifiée (1, 2, ... 7)
 * @param isMax
 * 		isMax == true  si on modifie une borne maximale
 * 		isMax == false si on modifie une borne minimale
 */
function changementBorne(numTranche, isMax) {
	var oldValue = "";
	if (isMax) {
		var valueChanged = $('#legendePaletteMax' + numTranche).val();
		numTranche++;
		oldValue = $('#legendePaletteMin' + numTranche).val();
		$('#legendePaletteMin' + numTranche).val(valueChanged); 
	} else {
		var valueChanged = $('#legendePaletteMin' + numTranche).val();
		numTranche--;
		oldValue = $('#legendePaletteMax' + numTranche).val();
		$('#legendePaletteMax' + numTranche).val(valueChanged); 
	}
	if (!checkConfigurationLegende()) {
		if (isMax) {
			$('#legendePaletteMin' + numTranche).val(oldValue);
		} else {
			$('#legendePaletteMax' + numTranche).val(oldValue);
		}
	}
}

/**
 * Convertir un decimal en hexa. 
 */
function convert_hexa(nb) {
	var hexa = "0123465789ABCDEF";
	return hexa.charAt(Math.floor(nb/16)) + hexa.charAt(nb%16);
}

/**
 * Création d'un dégradé de couleurs à partir de 2 couleurs et d'une taille fixe.
 * 
 * Retourne un tableau de couleurs. 
 */
function creerDegrade(r1, g1, b1, r2, g2, b2, size) {
	var dr = (r2 - r1) / size;
	var dg = (g2 - g1) / size;
	var db = (b2 - b1) / size;
	
	var arrayColors = new Array();
	
	for (var i = 0; i <= size; i++) {
		var hexa1 = convert_hexa(r1 + i * dr);
		var hexa2 = convert_hexa(g1 + i * dg);
		var hexa3 = convert_hexa(b1 + i * db);
		
		arrayColors[i] = "#" + hexa1 + hexa2 + hexa3;
	} 
	
	return arrayColors;
}
